import Vue from "vue"
import axios from "axios"
import qs from "qs"
import store from "../store/index"


let peroc = ""
// 开发环境
if(process.env.NODE_ENV === "development"){
  console.log("开发环境");
  Vue.prototype.$pre = "http://localhost:3000"

  peroc = "http://localhost:8080"
}
// 生产环境
if(process.env.NODE_ENV === "production"){
  console.log("生产环境");
  Vue.prototype.$pre = ""

  peroc = "http:localhost:3000"
}

// 请求拦截器
axios.interceptors.request.use(config=>{

  // token验证  。除了登录接口以外都需要加上token字段，因为登录之前是没有token的
  if(config.url !== "/api/userlogin"){
    config.headers.authorization = store.state.user.token
  }
  
  return config
})
// 响应拦截器
axios.interceptors.response.use(res=>{
  console.group("本次请求的路径是：" + res.config.url)
  console.log(res);
  console.groupEnd("拦截器结束")

  // 登录权限过期
  if(res.data.msg == "登录已过期或访问权限受限"){
    // 跳转到登录页
    window.location = peroc + "/login"
  }

  return res
})

/* 
    get请求
      url   请求地址
      params  请求参数
*/
export const get = (url,params={})=>{
  return new Promise((resolve,error)=>{
    axios.get(url,{
      params:params
    }).then(res=>{
      resolve(res)
    }).catch(err=>{
      error(err)
    })
  })
}

/* 
    post请求

*/
export const post = (url,params={},isFile=false)=>{
  let data = null
  if(isFile){
    // 有文件
    data = new FormData()
    for(let i in params){
      data.append(i,params[i])
    }
  }else{
    // 无文件
    data = qs.stringify(params)
  }

  return new Promise((resolve,error)=>{
    axios.post(url,data).then(res=>{
      resolve(res)
    }).catch(err=>{
      error(err)
    })
  })
}